In recent years, telecommunications have advanced from wired calling to wireless calling and from circuit-switched networks to packet-switched networks. In addition to voice calling, telecommunications devices now allow a range of communications, from emails to text messages, support numerous applications, and provide many data services, including Internet browsing and video streaming. Internet browsing and video streaming enable a telecommunication device user to view a streamed video clip from an Internet web site on her telecommunication device. Convergences of these technologies and others have resulted in support for video calling by telecommunication devices and their associated service providers. Video calling provides real-time video of the conversation partner to accompany the real-time audio exchanged in any voice or video call.
Existing technologies for streaming video to telecommunication devices do not work well given the real-time requirements of video calls. In streaming a video from a website, a buffer of received content is built on the receiving device in order to make fluctuations in network bandwidth opaque to the telecommunication device user. Because a buffer of content is available for use in playback when a network connection is interrupted or congested, playback appears to continue without interruption to the telecommunication device user. While such continuous playback is important in a video call, the delay required by any meaningful buffering does not work with real-time conversations. Received video and audio must appear to be played to the user as they are received for the communication to have the real-time qualities traditionally associated with voice calls. Without the use of meaningful buffering, however, transmission of video and audio frames of a video call over a network subject to interruptions, congestion, and differing qualities and types of coverage may result in quite noticeable glitches in the video call in the form of pausing and dropped video and audio frames.